iT邦幫忙

DAY 18
1

java菜鳥的學習筆記系列 第 18

使用SeekabnlerByteChannel in java

  • 分享至 

  • xImage
  •  

今天分享SeekabnlerByteChannel API,,通常搭配Files中的ByteChannel,主要功能是可以用position方法指定開始讀取的位置,再指定要讀多少byte,簡單範例如下

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mysee;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.SeekableByteChannel;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 *
 * @author joombuopre
 */
public class Mysee {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
       // TODO code application logic here
        Path dw=Paths.get("L:\\Tian.txt");
        //01818G773s7Gmmm3mss967s3848s423GSM253smms18gS97159645220s636m75S0s6S85702670mmSggmm78s2482277s8s98M
        int bufferSize =8;
        
        try(SeekableByteChannel sb= Files.newByteChannel(dw)){
            ByteBuffer buffer= ByteBuffer.allocate(bufferSize);
            sb.position(4); // set pointer to 4
            sb.read(buffer); // begin read after 4
            for(int i=0;i<8;i++){
                System.out.print((char)buffer.get(i)); //8G773s7G
            }
            
            System.out.println();
            buffer.clear();
            sb.position(0); //point set back to 0
            sb.read(buffer); //read start at 0
            for(int i=0;i<4;i++){
                System.out.print((char)buffer.get(i)); // 0181
            }
            System.out.println();
        }
    }
}

上一篇
使用Enum以及EnumSet in Java
下一篇
使用JDBC中的RowSet-以JdbcRowSet, CachedRowSet, JoinRowSet為例
系列文
java菜鳥的學習筆記28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言